package things

type ThingType int

const (
	DIAMOND = ThingType(1)
	GOLD    = ThingType(2)
	EXP     = ThingType(3)
	ITEM    = ThingType(1001)
)

type IThingOwner interface {
	OwnerId() int64    //ID
	Name() string      //名字
	SerialNo() int32   //流水号
	ServerZone() int32 //服务器区域
}

type IGameCause interface {
	GetCode() int32
	GetDesc() string
}

type ILackCode interface {
	GetCode() int32
	GetDesc() string
}

type IStorer interface {
	GetCount(owner IThingOwner, thingId int32) int64
	LackCode() ILackCode
	Add(owner IThingOwner, rewards []IRewardThing, gameCause IGameCause)
	Cost(owner IThingOwner, costs []ICostThing, gameCause IGameCause)
}

type IRewardThing interface {
	GetThingId() int32
	GetThingNum() int64
}

type ICostThing interface {
	GetThingId() int32
	GetThingNum() int64
}
